<?php
/*
 * 工具箱免登陆快捷入口
 * <br />一次登录, 免登陆使用所有小工具~
 * <br />包含phpinfo信息，需登录才能查看, 提高安全性
 * <br />注意：TOKEN_AUD和TOKEN_KEY要一致，否则会提示签名无效
 * @version 1.0 2018-1-11
 * @version 1.1 2018-1-12 SoChishun 引入ptshead工具套件公共头文件; 重命名为ptshome.php
 * @version 1.2 2018-1-15 SoChishun 新增自动刷新功能
 */

// 引入头文件
include './pts_head.php';
// #JWTLite配置位置
// 页面访问验证配置
JWTLite::check_login();
list($loginid, $token, $loginexp) = array_values(JWTLite::$LOGIN_RESULT);

// 主配置
$servers = array(
    '本地' => 'http://127.0.0.1/ptoolsuite/',
    '测试服' => 'http://debug.testdomain.com/ptoolsuite/',
    '正式服' => 'http://www.testdomain.com/ptoolsuite/',
);
$tools = array(
    'myadminlite' => 'myadminlite.php',
    'logadminlite' => 'logadminlite.php',
    'redisadminlite' => 'redisadminlite.php',
    'explorerlite' => 'explorerlite.php',
    'itestlite' => 'itestlite.php',
    'debugtool' => 'debugtool.php',
);

// 浏览器参数
$action = trim(input('action'));
$autorefresh = intval(input('autorefresh')); // 是否自动刷新
switch ($action) {
    case 'savenote':
        $content = input('content');
        header("Content-type:application/octet-stream");
        header("Content-Disposition:attachment; filename=infonote-" . date('YmdHis') . ".txt");
        echo $content;
        exit;
    case 'newwindow':
        echo str_replace("\n", '<br />', input('content'));
        exit;
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>工具箱免登陆快捷入口</title>
        <style type="text/css">
            body{font-size:12px;}
            fieldset{width:934px; margin: 0 auto 10px auto;}
            .hide { display:none;}
        </style>
    </head>
    <body>
        <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
        <?php
        echo '<fieldset>';
        echo '<legend><a href="#" class="lnk-switch">[-]</a></legend>';
        echo '<div class="fieldset_content">';
        // 用户登录信息
        if (isset($loginid)) {
            echo '<span title="登录过期时间：', $loginexp, ' (超时前进行跳转操作能让登录会话自动延期,避免重登录操作~)">', $loginid, '</span>';
            echo ' [<a href="?action=logout" onclick="return confirm(\'您确定要注销登录吗?\');">注销登录</a>]';
        }
        echo '<a href="?token=', $token, '">[刷新]</a>';
        echo ' <span title="自动刷新, 保持会话活动, 防止登录超时"><input type="checkbox" id="chk-autorefresh" value="', (JWTLite::$TOKEN_REFRESH_SECOND-1), '" data-url="?token=', $token, '&autorefresh=varval" style="vertical-align: middle;"', ($autorefresh ? ' checked="checked"' : ''), ' />自动刷新</span> ';
        // 工具集
        echo '<form target="_blank" style="margin-top:5px;">';
        echo '<select id="slt-server">';
        echo '<option value="">==选择服务器==</option>';
        foreach ($servers as $text => $value) {
            echo '<option value="', $value, '">', $text, '</option>';
        }
        echo '<select>';
        echo ' <select id="slt-tool">';
        echo '<option value="">==选择工具==</option>';
        foreach ($tools as $text => $value) {
            echo '<option value="', $value, '">', $text, '</option>';
        }
        echo '<select>';
        echo ' <input type="text" id="tb-name" placeholder="自定义工具全称" />';
        echo ' <button type="button" id="btn-go">转到</button>';
        echo ' <button type="reset">重置</button>';
        echo '<input type="hidden" name="token" value="', $token, '" />';
        echo '</form>';
        echo '</div>';
        echo '</div></fieldset>';
        // 记事本        
        echo '<fieldset>';
        echo '<legend>记事本<a href="#" class="lnk-switch">[+]</a><a href="#" onclick="return submit_noteform(\'savenote\')">[保存]</a><a href="#" onclick="return submit_noteform(\'newwindow\')">[显示在新窗口]</a></legend>';
        echo '<div class="fieldset_content hide">';
        echo '<form method="post" id="form-savenote" target="_blank">';
        echo '<textarea name="content" cols="130" rows="10"></textarea>';
        echo '<input type="hidden" name="token" value="', $token, '" />';
        echo '<input type="hidden" name="action" value="savenote" />';
        echo '</form>';
        echo '</div></fieldset>';

        // phpinfo
        echo '<fieldset>';
        echo '<legend>phpinfo() <a href="#" class="lnk-switch">[-]</a></legend>';
        echo '<div class="fieldset_content">';
        phpinfo();
        echo '</div></fieldset>';
        ?>
        <script>
            // 展开或收起fieldset内容
            $('legend .lnk-switch').click(function () {
                var 　 $a = $(this);
                if ($a.text() == '[-]') {
                    $a.text('[+]').attr('title', '展开');
                    $a.parent().parent().find('.fieldset_content').hide();
                } else {
                    $a.text('[-]').attr('title', '收起');
                    $a.parent().parent().find('.fieldset_content').show();
                }
            })
            $('#slt-tool').change(function () {
                $('#tb-name').val($(this).val());
            })
            $('#btn-go').click(function () {
                var srvurl = $('#slt-server').val();
                var name = $('#tb-name').val();
                if (srvurl.indexOf('://') < 1 || name.indexOf('.php') < 1) {
                    alert('服务器或工具未选择!');
                    return false;
                }
                $('form').attr('action', srvurl + name).submit();
                return false;
            })
            function submit_noteform(action) {
                $('#form-savenote').find('input[name="action"]').val(action);
                $('#form-savenote').submit();
                return false;
            }
            // 自动刷新 2018-1-15
            $('#chk-autorefresh').click(function () {
                var $chk = $(this);
                location.href = $chk.data('url').replace('varval', ($chk.prop('checked') ? $chk.val() : 0));
            })
            if ($('#chk-autorefresh').prop('checked')) {
                var $chk = $('#chk-autorefresh');
                setTimeout('location.href="' + $chk.data('url').replace('varval', $chk.val()) + '"', $chk.val() * 1000);
            }
        </script>
    </body>
</html>